/**
 * 页面级注入全局组件
 * @param comp 注入的组件
 * @returns config
 */
const injectTemplateToPages = (comp) => {
    return {
        name: 'injectTemplateToPages',
        enforce: 'pre',
        // code 代码，id 文件路径
        transform(code, id) {
            // vue文件，且不是App.vue，不是components目录下的文件
            const shouldInject =
                /\.vue$/.test(id) && !/App\.vue$/.test(id)&& !/node_modules/.test(id) && !/components/.test(id) && !/privacy\.vue$/.test(id);
            if (shouldInject) {
                // 注入模板代码
                code = code.replace(/\B<template>/, (_) => `${_}${comp}`);
            }

            return {
                code,
                map: null,
            };
        },
    };
};

export default injectTemplateToPages;
